雲端原生和微服務架構等技術的普及讓API受到越來越大的重視。
那麼當應用程式開始上雲,各項需求都可以透過雲端服務滿足的情況下,應用程序,尤其基於雲端API的應用程式的安全問題該如何解決?
表現層狀態轉移(REST,Representational State Transfer)這種軟體架構風格最早可追溯到電腦科學家Roy Fielding於2000年發布的一篇博士論文。 在此後多年裡,REST API(有時也稱為RESTful API)逐漸發展成為一種非常流行的API架構模型,多用於Web和行動應用,以及企業對企業應用和企業內部系統。
雖然許多實作也用了其他API方法(如SOAP、GraphQL和gRPC),但REST API因為易於實現而獲得了最廣泛的使用。 REST API設計非常便於現代前端框架使用,因此成為Web應用、行動應用以及許多內部和企業間API實現的熱門選擇。
儘管REST API能以高度安全和彈性的方式實施,但有些基本的API安全標準對任何實施都至關重要。
在REST API設計中構建安全性的五大原則是:
始終使用TLS加密
實施完善且可擴展的身份驗證和授權模型
不要在URL中包含敏感資訊
嚴格定義允許的RESTful API請求和回應
實施持續的API發現功能
與其他類型的敏感HTTP流量一樣,對RESTful API使用TLS可以確保API消費者與API端點間的所有通信都經過加密。 這對於REST API安全和Web應用程式安全同樣重要,因為由此產生的HTTP流量包括敏感的身份驗證詳細資訊,如密碼、API密鑰或令牌。
可以使用許多不同技術來管理對REST API的存取。 最常用的技術是API密鑰和安全令牌。
但密鑰和令牌的管理可能是一種相當複雜的工作。
這往往會導致無意中出現REST API安全漏洞。 通過與相容OAuth 2.0的身份管理供應商集成來進行身份驗證和發放存取令牌,可降低這種風險。
集中式API閘道也可用於規範和保護REST API安全方法。
在URL中包含敏感資訊(包括使用者憑證、金鑰或令牌),這是一種常見的REST API設計缺陷。 即便在使用TLS的情況下,攻擊者也很容易發現這些資訊。
API請求資料路徑上的各種伺服器和網路設備也會經常記錄URL,如果URL包含敏感資訊,就會導致進一步的資料外洩。
我們需要假定攻擊者會試圖以惡意或無意的方式使用API。 因此,切勿預設信任RESTful API請求。 要採取的最重要步驟之一是:驗證任何參數或物件的格式、長度和類型等屬性。
我們還應該嚴格管理REST API可提供的回應類型。
例如,回應應僅限於明確允許的內容類型,如GET、PUT和POST。
即便是遵守REST API安全最佳實踐的企業,也可能會被正常流程之外實施的影子API或尚未退役的遺留基礎設施中被遺忘的殭屍API打個措手不及。
因此,實施持續的企業級API發現功能至關重要。
保障為所有API維持完整清單的最佳方法是從所有可用的API活動資訊源收集數據,這些資訊源包括:
API閘道
內容交付網路
雲提供者日誌
日誌管理系統
編排工具
分析這些數據以獲取API活動的證據,可確保安全團隊瞭解整個企業使用的所有API。
發現任何意外的REST API后,都可以通過應用適當的REST API最佳實踐來停止使用,或將其納入正式清單。
在REST API設計中實施一套基礎安全標準是不可或缺的第一步,但僅靠這些步驟並不能保證應用程式完全安全。
許多攻擊者已經開發出了規避REST API基本安全措施的高級技術。 畢竟,並不是每次REST API安全攻擊都以攻破Web應用程式基礎架構為目。
在許多情況下,攻擊者只是希望以非故意的方式使用API功能來存取敏感資料並獲得競爭優勢。
這些活動可能來自可信任來源,如已獲準存取REST API的客戶或合作夥伴。
憑證、金鑰和令牌也可能被竊取或劫持,從而使攻擊者在我們的基線REST API安全標準之外推進類似活動。
為了獲得更完善的保護,防止這些更複雜的API濫用方式,我們可以使用以下四種高級REST API安全性最佳實踐:
使用雲收集大量REST API安全數據集
將行為分析應用於REST API數據
為開發和運營團隊提供有關REST API使用方式的見解
開展積極主動的REST API威脅獵捕活動
許多第一代API安全技術都是在企業內部運作的。
因此它們的作用僅限於分析非常短的活動窗口,之後API資料就會被丟棄。
這種方式的效果極為有限,因為許多類型的API濫用活動都是在數週甚至數月內以低速緩慢的方式進行的。
將API活動數據發送到雲端,就能累積獲得API詳細資訊所需規模的數據,儲存時間跨度可達一個月或更長。
這為更複雜的分析技術打開了大門。
一旦掌握了大量有意義的RESTAPI活動信息,我們還可以利用雲計算的計算規模來執行行為分析。 增強REST API安全策略的第一種方法是識別相關實體,從而獲得更多背景資訊。
實體可能包括使用者以及有意義的業務流程。
有了這些上下文,我們就可以確定API的正常使用模式。
在此基礎上,可以進一步分析以檢測異常。
這種類型的異常檢測是發現濫用的最佳方法,尤其是當濫用來自經過驗證的使用者時。
保護企業免受REST API安全漏洞侵害的最佳方法之一是完全避免這些漏洞。
與開發人員和運營人員共用有關RESTful API使用和濫用情況的資訊,將有助於企業在開發和實施流程的早期就採用更好的REST API安全實踐,實現“向左轉”。
不要等到REST API濫用升級為嚴重安全事件時才採取行動。 積極主動地調查REST API使用方式並查找濫用企圖(即使沒有成功),這有助於我們發現REST API安全實踐中的薄弱環節。
檢查API使用活動也是發現REST API安全漏洞的有效方法。
在攻擊者利用這些漏洞之前找到並消除它們,是增強REST API安全態勢的最有效方法之一。
Akamai已説明大量全球知名的企業實施了基礎和高級REST API安全最佳實踐。
從API發現到行為分析,再到託管的威脅獵捕服務,我們的方法將幫您加快REST API安全工作的步伐。
歡迎關注Akamai,進一步瞭解Akamai的API安全性解決方案,以及如何將其與Akamai的其他服務相互配合,在雲時代打造安全、可靠、高性能的在線數字體驗。